home *** CD-ROM | disk | FTP | other *** search
/ Resource for Source: C/C++ / Resource for Source - C-C++.iso / misc_src / knowhow4 / hypview.cpp < prev    next >
C/C++ Source or Header  |  1995-11-01  |  2KB  |  58 lines

  1. #include "hypview.h"
  2.  
  3. HypertextView::HypertextView(rect coord, char* vName, char* fName,
  4.            int res, int interv,
  5.            BORDERS b_type, int s, char* h, int bak, int attr,
  6.            int p_height)
  7.        : Block(coord, fName, h, s,
  8.            res, b_type, b_type, 0, 16, 16)
  9.     {
  10.     rect r = rect(textRect(w1->user_screen()));
  11.     r.origin += loc(2, 1);
  12.     r.corner -= loc(2, 1);
  13.     int sx = textX(s);
  14.     int sy = textY(s);
  15.  
  16.     view_win =
  17.     new OutputWindow(r, vName,
  18.            b_type, 0, bak, attr, interv, p_height);
  19.  
  20.     home_element = new Element(loc(coord.origin.X + 4 + sx,
  21.                                    coord.corner.Y - 2 - sy), HOME_ELEMENT);
  22.     end_element = new Element(loc(coord.corner.X - 6 - sx, coord.corner.Y - 2 - sy),
  23.                      END_ELEMENT);
  24.     add(home_element); add(end_element);
  25.  
  26.     view_win->set_ret(1);
  27.  
  28.     insert(view_win, 1);
  29.  
  30.     assign(view_win, left_element, AC_LEFT);
  31.     assign(view_win, right_element, AC_RIGHT);
  32.     assign(view_win, up_element, AC_UP);
  33.     assign(view_win, dn_element, AC_DOWN);
  34.     assign(view_win, cancel_element, AC_CANCEL);
  35.     assign(view_win, pg_up_element, AC_PG_UP);
  36.     assign(view_win, pg_dn_element, AC_PG_DN);
  37.     assign(view_win, home_element, AC_HOME);
  38.     assign(view_win, end_element, AC_END);
  39.  
  40.     }
  41. /////////////////////////////////
  42. void HypertextView::rearrange()
  43.     {
  44.     Block::rearrange();
  45.     rect coord = textRect(w1->user_screen());
  46.     coord.corner.Y -= 1; coord.origin.Y += 1;
  47.     int sx = textX(w1->get_shadow());
  48.     int sy = textY(w1->get_shadow());
  49.  
  50.     list[1]->repose(coord);
  51.     coord = textRect(w1->bound());
  52.  
  53.     home_element->repose(rect(coord.origin.X + 4 + sy,
  54.         coord.corner.Y - 2 - sy,
  55.     coord.origin.X + 6 + sy, coord.corner.Y - 1 - sy));
  56.     end_element->repose(rect(coord.corner.X - 6 - sx, coord.corner.Y - 2 - sy,
  57.     coord.corner.X - 4 - sx, coord.corner.Y - 1 - sy));
  58.     }